1856C - To Become Max - CodeForces Solution


binary search brute force data structures dp

Please click on ads to support us..

C++ Code:

#include <bits/stdc++.h>
using namespace std;
#define Fujiwara_Chan ios_base::sync_with_stdio(false); cin.tie(nullptr); cout.tie(nullptr);
typedef long long ll;


int main() {
    Fujiwara_Chan
    int tt; cin >> tt;
    while (tt--) {
        int n, k; cin >> n >> k;
        vector<int> v(n);
        for (auto &i : v) cin >> i;

        ll l = *max_element(v.begin(), v.end()) + 1;
        ll r = l + k, ans = l - 1;
        while (l <= r) {
            ll mid = (l + r) / 2, flag = 0;
            for (int i = 0; i < n; ++i) {
                ll cnt = 0, curr = mid;
                for (int j = i; j < n; ++j) {
                    if (curr <= v[j]) {
                        if (cnt <= k) flag = 1;
                        break;
                    }
                    if (j == n - 1) cnt = k + 1;
                    cnt += curr - v[j];
                    curr--;
                }
                if (cnt <= k) flag = 1;
            }
            if (flag) ans = mid, l = mid + 1;
            else r = mid - 1;
        }
        cout << ans << "\n";
    }
    return 0;
}


Comments

Submit
0 Comments
More Questions

1654C - Alice and the Cake
369A - Valera and Plates
1626A - Equidistant Letters
977D - Divide by three multiply by two
1654B - Prefix Removals
1654A - Maximum Cake Tastiness
1649A - Game
139A - Petr and Book
1612A - Distance
520A - Pangram
124A - The number of positions
1041A - Heist
901A - Hashing Trees
1283A - Minutes Before the New Year
1654D - Potion Brewing Class
1107B - Digital root
25A - IQ test
785A - Anton and Polyhedrons
1542B - Plus and Multiply
306A - Candies
1651C - Fault-tolerant Network
870A - Search for Pretty Integers
1174A - Ehab Fails to Be Thanos
1169A - Circle Metro
780C - Andryusha and Colored Balloons
1153A - Serval and Bus
1487C - Minimum Ties
1136A - Nastya Is Reading a Book
1353B - Two Arrays And Swaps
1490E - Accidental Victory